package practica6;

import java.io.*;
import org.antlr.*;
import org.antlr.runtime.ANTLRFileStream;
import org.antlr.runtime.CharStream;
import org.antlr.runtime.CommonTokenStream;
import org.antlr.runtime.RecognitionException;


public class Procesador {
	public static void main(String args[]) throws IOException, RecognitionException {
		try {
			
			CharStream cs = new ANTLRFileStream(args[0]);
			CommonTokenStream tokens = new CommonTokenStream();
			
			if (args[0].endsWith(".txt")) {		        
				AnalexLexer analex = new AnalexLexer(cs);
		        tokens.setTokenSource(analex);
//		        System.out.println(tokens);
		        AnalexParser anasint = new AnalexParser(tokens);
		        anasint.entrada();
			}
			
			else if (args[0].endsWith(".C")) {
				AnalexCLexer analex = new AnalexCLexer(cs);
		        tokens.setTokenSource(analex);
//		        System.out.println(tokens);
		        AnalexCParser anasint = new AnalexCParser(tokens);
		        anasint.entrada();
			}
			
			else if (args[0].endsWith(".xml")) {
				AnalexXML analex = new AnalexXML(cs);
		        tokens.setTokenSource(analex);
//		        System.out.println(tokens);
		        AnasintXML anasint = new AnasintXML(tokens);
		        anasint.entrada();
			}
			
			else if (args[0].endsWith(".gdl")) {
				AnalexGDL analex = new AnalexGDL(cs);
		        tokens.setTokenSource(analex);
//		        System.out.println(tokens);
		        AnasintGDL anasint = new AnasintGDL(tokens);
		        anasint.entrada();
			}
			
			else if (args[0].endsWith(".g")) {
				AnalexANTLR analex = new AnalexANTLR(cs);
		        tokens.setTokenSource(analex);
//		        System.out.println(tokens);
		        AnasintANTLR anasint = new AnasintANTLR(tokens);
		        anasint.entrada();
			}
		}
		catch(IOException ioe) {
			System.err.println(ioe.getMessage());
		}
	}

}
